home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cocktail / front.lha / front / src / Makefile < prev    next >
Makefile  |  1992-08-18  |  3KB  |  102 lines

  1. # $Id: Makefile,v 2.7 1992/08/10 08:45:54 grosch rel $
  2. LIB    = $(HOME)/lib
  3. BIN    = $(HOME)/bin
  4. MLIB    = ../../reuse/src
  5. MC    = MC
  6. MFLAGS    = -noindex -norange
  7.  
  8. DEFSMC    = Actions.md Character.md Checks.md Errors.md \
  9.       Limits.md Listing.md Oper.md Path.md Rules.md \
  10.       SysError.md TokenTab.md Tokens.md WriteTok.md
  11.  
  12. MODSMC    = Actions.mi Character.mi Checks.mi Errors.mi \
  13.       Limits.mi Listing.mi Oper.mi Pars.mi Path.mi Rules.mi \
  14.       SysError.mi TokenTab.mi Tokens.mi WriteTok.mi
  15.  
  16. DEFSM2C    = Actions.def Character.def Checks.def Errors.def \
  17.       Limits.def Listing.def Oper.def Path.def Rules.def \
  18.       SysError.def TokenTab.def Tokens.def WriteTok.def
  19.  
  20. MODSM2C    = Actions.mod Character.mod Checks.mod Errors.mod \
  21.       Limits.mod Listing.mod Oper.mod Pars.mod Path.mod Rules.mod \
  22.       SysError.mod TokenTab.mod Tokens.mod WriteTok.mod
  23.  
  24. Scanner.Tab:    $(MC)_boot
  25.  
  26. # compilation of the front-end with MOCKA (mc)
  27.  
  28. MC:    Scanner.md Scanner.mi Parser.md Parser.mi MC_boot
  29.  
  30. MC_boot:    $(DEFSMC) $(MODSMC)
  31.     echo p Pars | mc $(MFLAGS) -d $(MLIB)
  32.  
  33. # compilation of the front-end with SUN Modula compiler (m2c)
  34.  
  35. M2C:    Scanner.def Scanner.mod Parser.def Parser.mod M2C_boot
  36.  
  37. M2C_boot:    $(DEFSM2C) $(MODSM2C)
  38.     make -f MakefileM2C LIB=$(MLIB)
  39.  
  40. Scanner.md Scanner.mi:    input.rex
  41.     rex -d input.rex;
  42.  
  43. Parser.md Parser.mi:    input.lalr
  44.     lalr -b -d input.lalr;
  45.  
  46. install:    Scanner.Tab Parser.Tab ErrorTab $(LIB)/lalr
  47.     install -c -m 644 Scanner.Tab $(LIB)/lalr
  48.     install -c -m 644 Parser.Tab $(LIB)/lalr
  49.     install -c -m 644 ErrorTab $(LIB)/lalr
  50.  
  51. # installation directories
  52.  
  53. $(LIB)/lalr:    $(LIB)
  54.     sh -c "if test ! -d $(LIB)/lalr; then mkdir $(LIB)/lalr; else true; fi"
  55.  
  56. # swap all byte pairs of the files Scanner.Tab and Parser.Tab
  57.  
  58. bin.conv:
  59.     dd conv=swab < Scanner.Tab > .Scanner.Tab; mv .Scanner.Tab Scanner.Tab
  60.     dd conv=swab < Parser.Tab > .Parser.Tab; mv .Parser.Tab Parser.Tab
  61.  
  62. m2c:
  63.     co RCS/*
  64.     cp [EPS]*Tab ../m2c
  65.     chmod u+w ../m2c/ErrorTab
  66.     ln *.m[id] ../m2c
  67.     cd ../m2c; make sources MFLAGS="-c -d../../reuse/src"
  68.     cd ../m2c; rm -f *.m[id]
  69.  
  70. # support for mkid
  71.  
  72. lalrId:    input.rex
  73.     echo SCANNER lalrId | cat - input.rex | \
  74.     sed 's/\(RETURN.*Ident\)/yyEcho; IO.WriteNl (IO.StdOutput); \1/' | \
  75.     $(BIN).sparc.t/rex -sd;
  76.     sed 's/@/lalrId/' < ../../front/src/Id.mi > lalrIdDrv.mi
  77.     echo p lalrIdDrv | mc -d $(MLIB)
  78.     mv lalrIdDrv lalrId
  79.  
  80. installId:    lalrId $(LIB)/Id
  81.     echo exec $(LIB)/Id/lalrId -l$(LIB)/Id "2> /dev/null" > $(BIN)/lalrId
  82.     chmod a+rx $(BIN)/lalrId
  83.     install -c -m 644 lalrId.Tab $(LIB)/Id
  84.     install -c -s -m 755 lalrId $(LIB)/Id
  85.  
  86. $(LIB)/Id:    $(LIB)
  87.     sh -c "if test ! -d $(LIB)/Id; then mkdir $(LIB)/Id; else true; fi"
  88.  
  89. cleanId:
  90.     rm -f lalrId*
  91.  
  92. clean:    cleanId
  93.     rm -f core *.[dimor] *.def *.mod *.sym ERRORS LISTING _Debug Pars *.bak
  94.  
  95. .SUFFIXES:    .def .mod .md .mi
  96.  
  97. .md.def:
  98.     ln $*.md $*.def
  99.  
  100. .mi.mod:
  101.     ln $*.mi $*.mod
  102.